//
//  UITableViewCellExtension.swift
//  UITableViewDemo
//
//  Created by daqsoft-mac on 2022/5/12.
//

import UIKit

/// 协议绑定Key
private var cellProtocolKey : Void?

extension UITableViewCell {
    
    /// 绑定的协议
    var cellProtocol : MCPublicTableViewCellProtocol? {
        get {
            return objc_getAssociatedObject(self, &cellProtocolKey) as? MCPublicTableViewCellProtocol
        }
        
        set {
            objc_setAssociatedObject(self, &cellProtocolKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
            cellProtocolDidSet()
        }
    }
}

@objc extension UITableViewCell {
    
    /// 协议绑定成功
    func cellProtocolDidSet() {
        
    }
}

/// 协议绑定Key
private var viewProtocolKey : Void?

extension UITableViewHeaderFooterView {
    
    /// 绑定的协议
    var viewProtocol : MCPublicTableViewProtocal? {
        get {
            return objc_getAssociatedObject(self, &viewProtocolKey) as? MCPublicTableViewProtocal
        }
        
        set {
            objc_setAssociatedObject(self, &viewProtocolKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
            viewProtocolDidSet()
        }
    }
}

@objc extension UITableViewHeaderFooterView {
    
    /// 协议绑定成功
    func viewProtocolDidSet() {
        
    }
}
